/**
 * 
 * @since  2009/3/1
 * @author ashen
 * 
 * Description: 处理用户的登录请求。
 * 
 */

	$(document).ready(function() {
	    UserDo.show();    
	});
	
	var UserDo={
		host: "http://localhost:8080/travelProject/",
		
		//加载用户管理界面的根节点id名
		$userSectionRoot: "#userAdmin",
		
		//删除用户
		deleteUser : function() {
			var userId=$('.userId').attr("id");
			$(UserDo.$userSectionRoot).empty();
			$.ajax({
				type: "DELETE",
				url: UserDo.host + "userdo/delete/"+userId,
				success: function(data){
					//返回登录界面
					Login.loadForm();
					$(UserDo.$userSectionRoot).append($(data));		
				},error :function(){
					//返回显示用户界面
					UserDo.show();
					$(UserDo.$userSectionRoot).append('<p>删除用户失败</p>');	
				}
			});
		},
		
		//处理用户登出请求
		logout : function() {
			$(UserDo.$userSectionRoot).empty();
			$.post(UserDo.host + "userdo/logout",
				function(data) {										
					//返回登录界面
					Login.loadForm();	
					$(UserDo.$userSectionRoot).append($(data));
			});		
		},
		
		//显示用户信息
		show :function(){
			$(UserDo.$userSectionRoot).empty();
			$.get(UserDo.host+"userdo/show"+"?random="+Math.random(),function(data){			
				if(data===""){
 					//用户没有登录，加载登录界面
					Login.loadForm();
				}else{
					//用户已登录，显示用户信息
					$(UserDo.$userSectionRoot).append($(data));	
					//为显示用户信息界面绑定事件
					UserDo.bindShow();
				}
			});		
		},
		
		//为显示用户信息界面绑定事件
		bindShow : function(){
			//为返回链接添加单击事件
			$('.back').click(Login.loadForm);
			//为登出链接绑定登出事件
			$('#logout').click(UserDo.logout);
			//未删除用户链接绑定删除事件
			$('#deleteUser').click(UserDo.deleteUser);
		}
				
	};

	var Login= {
		 	
 		//用户登录表单地址
 		$formUrl: "user/login.jsp",
 		 		
 		//加载用户登录界面
 		loadForm: function(){
 			$(UserDo.$userSectionRoot).empty();
 			$.get(UserDo.host+Login.$formUrl+"?random="+Math.random(),function(result){				 			
    			$(UserDo.$userSectionRoot).append($(result));
    			$("#registerA").click(Login.click);
    			FormDo.initForm();
    			$('form').submit(Login.checkForm);
			});
 		},
 		 		
 		//加载用户注册页面的链接单击事件
 		click: function(event){
 			Register.loadForm();
 		},
		
		//发送登录请求，显示返回的结果
		doLogin : function(){
			var $name =$('input[@name="userName"]').val();
			var $password = $('input[@name="userPassword"]').val();
			var $random = $('input[@name="random"]').val();
			$(UserDo.$userSectionRoot).empty();
			$.post(UserDo.host + "userdo/login",
				{	userName : $name,
					userPassword : $password,
					random : $random
				},
				function(data) {				
					$(UserDo.$userSectionRoot).append($(data));		
					//为显示用户信息界面绑定事件
					UserDo.bindShow();
					$('.back').click(UserDo.show);
			});		
		},
		
		//检查表单输入的有效性
		checkForm : function(){
			FormDo.checkForm();	
			if(!FormDo.getWarnings()){
				Login.doLogin();	
				return true;				
			}
			$('.msg').show();
			return false;
		}
				 		
	};
	
	var Register={
	
		//用户注册表单地址
 		$formUrl: "user/register.jsp",
 		
 		//加载用户注册页面
 		loadForm: function() {
 			$(UserDo.$userSectionRoot).empty();
 			$.get(UserDo.host+Register.$formUrl+"?random="+Math.random(),function(result){				 			
    			$(UserDo.$userSectionRoot).append($(result));
    			//为返回链接添加单击事件
				$('.back').click(Login.loadForm);
    			FormDo.initForm();
    			$('form').submit(Register.checkForm);
			});
 		},
 		
 		//发送注册请求，显示返回的结果
		doRegister : function(){
			var $name =$('input[@name="userName"]').val();
			var $password = $('input[@name="userPassword"]').val();
			var $NickName = $('input[@name="userNickName"]').val();
			var $profile = $('textArea[@name="profile"]').val();			
			var $random = $('input[@name="random"]').val();
			$(UserDo.$userSectionRoot).empty();
			$.post(UserDo.host + "userdo/register",
				{	userName : $name,
					userPassword : $password,
					userNickName : $NickName,
					profile	:	$profile,			
					random : $random
				},
				function(data) {
					$(UserDo.$userSectionRoot).append($(data));	
					$('.back').click(UserDo.show);	
			});		
		},
		
		//检查表单输入的有效性
		checkForm : function(){
			FormDo.checkForm();	
			if(FormDo.getWarnings()){
				$('.msg').show();
				return false;
			}else{
				Register.doRegister();	
				return true;				
			}
		}	
	};
	
	
	